--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
docs/agents/module-ownership.md 5567022348aebbe4b6a1b5d7ea8d0fb04a3cacde (55670223) Text, 8.83 KB
Module ownership map
Domain ownership for MeshChatX. Use this when deciding where code and tests live.
Orchestration entry remains T383838meshchatx.meshchat (T383838ReticulumMeshChat, T383838main).
Schema contracts live under T383838tests/backend/ (not production route modules).
Backend
┌───────────────────┬─────┬─────────────────────────────┬──────────────────────────────┬─────┬─────┐
│ Domain │ Ma… │ HTTP route module │ WS module │ Pr… │ Fr… │
├───────────────────┼─────┼─────────────────────────────┼──────────────────────────────┼─────┼─────┤
│ Identity │ T383838id… │ T383838http/routes/identities.py │ T383838http/ws/dispatch.py │ T383838te… │ Id… │
│ Status / startup │ T383838li… │ T383838http/routes/status.py │ (status via REST) │ T383838te… │ Ap… │
│ Auth / CSRF │ T383838cs… │ T383838http/routes/auth.py │ T383838http/ws/dispatch.py │ T383838te… │ Au… │
│ Messages / LXMF │ T383838me… │ T383838http/routes/messages.py, T383838l… │ T383838http/ws/dispatch.py │ LX… │ T383838me… │
│ Telephone / LXST │ T383838te… │ T383838http/routes/telephone.py, T383838… │ T383838http/ws/dispatch.py │ te… │ T383838ca… │
│ RRC │ T383838rr… │ T383838http/routes/rrc.py │ T383838http/ws/dispatch.py │ RR… │ T383838re… │
│ Map │ T383838ma… │ T383838http/routes/map.py │ marker updates via broadcast │ ma… │ T383838ma… │
│ Plugins │ T383838pl… │ T383838http/routes/plugins.py, T383838si… │ T383838http/ws/dispatch.py │ pl… │ T383838se… │
│ FileSync │ T383838rn… │ T383838http/routes/filesync.py │ (REST-heavy) │ fi… │ T383838fi… │
│ Interfaces │ T383838in… │ T383838http/routes/interfaces.py │ (announce loops on app) │ in… │ T383838in… │
│ Database / backup │ T383838da… │ T383838http/routes/database.py, T383838m… │ (broadcasts on restore) │ ba… │ Ab… │
│ Docs │ T383838do… │ T383838http/routes/docs.py │ (none) │ do… │ T383838do… │
│ Sandbox │ T383838la… │ T383838http/routes/status.py │ (none) │ la… │ We… │
│ RNS Link API │ T383838rn… │ (WS only) │ T383838http/ws/dispatch.py │ T383838te… │ pl… │
│ Config │ T383838co… │ T383838http/routes/config.py │ T383838http/ws/dispatch.py │ se… │ T383838se… │
└───────────────────┴─────┴─────────────────────────────┴──────────────────────────────┴─────┴─────┘
HTTP package layout
T282828
meshchatx/src/backend/http/
context.py
errors.py
live_names.py
middleware.py
register.py
routes/<domain>.py
routes/__init__.py
ws/dispatch.py
T383838register_all_routes(routes, app) is the sole composition entry. Call it only from
T383838ReticulumMeshChat._define_routes. Domain register functions are listed in fixed order
in T383838routes/__init__.py. Free names resolve through T383838live_names.inject_meshchat_names.
WS inbound handlers live in T383838ws/handlers_*.py and are composed by T383838ws/dispatch.py.
Frontend mega-pages
┌─────────────────────────────────┬──────────────────────────┬───────────────────────────────┬─────┐
│ Page shell │ Child dirs │ Shared JS │ Pr… │
├─────────────────────────────────┼──────────────────────────┼───────────────────────────────┼─────┤
│ T383838settings/SettingsPage.vue │ T383838settings/sections/, T383838Set… │ T383838js/settings/ │ T383838Se… │
│ T383838messages/ConversationViewer.vue │ T383838messages/composer/, T383838mod… │ T383838conversationMessageHelpers.js │ Co… │
│ T383838call/CallPage.vue │ T383838call/tabs/, T383838call/audio/ │ call helpers │ T383838Ca… │
│ T383838map/MapPage.vue │ T383838map/internal/ │ T383838js/map* │ ma… │
│ T383838relay/RelayChatPage.vue │ relay view components │ T383838js/relay* │ re… │
│ T383838App.vue │ T383838layout/ │ registries, WS shell │ T383838Ap… │
└─────────────────────────────────┴──────────────────────────┴───────────────────────────────┴─────┘
Contract ownership
┌───────────────────────────┬──────────────────────────────────────────────────────────────────────┐
│ Contract │ Owner files │
├───────────────────────────┼──────────────────────────────────────────────────────────────────────┤
│ HTTP route inventory │ T383838tests/backend/fixtures/http_api_routes.json, scanners in T383838http_api_c… │
│ HTTP JSON GET schemas │ T383838http_api_response_schemas.py, T383838http_api_response_registry.py │
│ Core status/auth/app_info │ T383838api_json_contract_schemas.py │
│ WS message manifest │ T383838tests/backend/fixtures/ws_message_manifest.json, T383838ws_contract_helper… │
└───────────────────────────┴──────────────────────────────────────────────────────────────────────┘
Schema contracts stay in T383838tests/backend/. Route and WS owners are production modules under T383838backend/http/.
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────